Spring Boot 2.0系列文章(四):Spring Boot 2.0 源码阅读环境搭建

night-photograph-2183637_1920

前提

前几天面试的时候,被问过 Spring Boot 的自动配置源码怎么实现的,没看过源码的我只能投降��了。

这不,赶紧来补补了,所以才有了这篇文章的出现,Spring Boot 2. 0 源码阅读环境的搭建中还遇到点问题,被坑死了,还好解决了,感谢群里的小伙伴!

关注我

mark

转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/

项目下载

https://github.com/spring-projects/spring-boot/releases 可以看到所有版本的下载地址,我这里选择的是 Spring Boot 2 中最新的 v2.0.1.RELEASE 版本,下载后,然后解压。获取代码之前,请先确保你的 JDK 版本是 1.8 以上哦。

项目编译

进入 spring-boot-2.0.1.RELEASE 的目录下,执行下面的命令。

跳过测试用例编译
sudo mvn clean install -DskipTests -Pfast //跳过测试用例

跳过测试用例可以加快编译的速度。

先看下运行成功的效果:

springboot201

只花了 6 分多钟就好了。

全量编译
sudo mvn -f spring-boot-project -Pfull clean install

springboot2-error3

全量编译竟然报错,一波未平,一波又起!

2018-04-15_15-37-25

看网上的解决方法是:在项目的 pom.xml 文件中的 <properties> 添加 <javadocExecutable>

<properties>
  <javadocExecutable>${java.home}/../bin/javadoc</javadocExecutable>
</properties>

此方法虽然管用,但是只是临时的,需要对每个项目都进行添加。

问题产生的原因应该是,mvn 拿到的 JAVA_HOME 位置应该是 ${JAVA_HOME}/jre 而不是 jdk 位置。

后面又看官方的 README 上面写的执行命令:

sudo mvn clean install

执行后也是有各种报错,尝试了很久解决,最后花了好几个小时才到下面这图:

springboot2-error4

太折腾人了,太麻烦了!

暂时就不全量编译了,我们就直接把现在 跳过测试用例编译 后的项目导入到 IDEA 中去。

导入项目工程

import

导入后将那些测试的 module 标记为 maven 项目,然后后面自己再根据测试用例去跟源码吧。

导入后项目没出现报错,美滋滋,后面源码可以看起来。

success02

遇到的坑

在这之前,我自己创建项目 Spring Boot 2 项目都是失败的,maven 运行项目(mvn clean install)报错如下:

springboot2-error2

springboot2-error

通过上图可以发现报错的罪魁祸首是由于找不到 org.yaml.snakeyaml 1.19 的包,这个依赖死活下不下来,苦逼了��。

一开始以为是公司配的 maven setting.xml 文件有问题(公司私服有问题),导致我这个 org.yaml.snakeyaml 1.19 的包一直下载不来。后来我叫群里的好友帮忙测试下能不能创建 Spring Boot 2 项目,结果他们都行的。我就换成了他们阿里云镜像的 setting 文件,结果在我这还是不行的。真是醉了,我干脆直接叫他把 maven 本地仓库中的 org.yaml.snakeyaml 1.19 整个包都发给我,结果再次创建 Spring Boot 2 项目就能成功了。美滋滋��!

springboot2-success

然后就蹭着现在环境 OK,开始搭建我的 Spring Boot 2 源码阅读环境!

相关文章

1、Spring Boot 2.0系列文章(一):Spring Boot 2.0 迁移指南

2、Spring Boot 2.0系列文章(二):Spring Boot 2.0 新特性详解

3、Spring Boot 2.0系列文章(三):Spring Boot 2.0 配置改变

4、Spring Boot 2.0系列文章(四):Spring Boot 2.0 源码阅读环境搭建

最后

源码不骗人,多看看!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
核心功能 文章/图片/视频发布、喜欢、统计阅读次数。 文章标签tag功能、支持按tag分类 文章支持ueditor/markdown编辑器切换(后台配置) 评论功能,支持回复,支持表情。 第三方(微博、QQ)登录。 lucene实现的站内搜索。 响应式布局 支持用户订阅 先看效果图 SpringBoot开发非常美观的java博客系统(包含后台管理功能) SpringBoot开发非常美观的java博客系统(包含后台管理功能) SpringBoot开发非常美观的java博客系统(包含后台管理功能) http://localhost:8080/admin/group/list SpringBoot开发非常美观的java博客系统(包含后台管理功能) SpringBoot开发非常美观的java博客系统(包含后台管理功能)SpringBoot开发非常美观的java博客系统(包含后台管理功能) 技术选型: JDK8 数据库MySQL 主框架 (Spring-bootSpring-data-jpa) 安全权限 Shiro 搜索工具 Lucene 缓存 Ehcache 视图模板 Freemarker 其它 Jsoup、fastjson jQuery、Seajs Bootstrap 前端框架 UEditor/Markdown编辑器 font-Awesome 字体/图标 准备工作(sql文件在项目里面) 安装 Jdk8 安装 Maven 准备 IDE (如果你不看源码,可以忽略下面的步骤,直接通过Maven编译war包:mvn clean package -DskipTests) IDE 需要配置的东西 编码方式设为UTF-8 配置Maven 设置Jdk8 关于这些配置,网上有一大把的资料,所以此处不再重复。 获取代码导入到IDE 下载代码 导入到IDE的时候请选择以Maven的方式导入 项目配置参考 系统配置手册 配置完毕 启动项目,在控制台看到Mblog加载完毕的信息后,表示启动成功 打开浏览器输入:http//localhost/mblog/ (此处仅是示例,具体具体端口因人而异),访问成功即部署完毕 后台管理的地址是 /admin, 如果你是管理员账号点导航栏的头像会看到"后台管理" 启动成功后,你应该去后台的系统配置里配置你的网站信息等。 常见问题总结 进入系统后, 菜单加载不出来, 那应该是你没有导 db_init.sql 点标签显示乱码, 请设置Tomcat的 URIEncoding 为 UTF-8 项目截图 SpringBoot开发非常美观的java博客系统(包含后台管理功能) 转自:https://gitee.com/mtons/mblog SpringBoot开发非常美观的java博客系统(包含后台管理功能) 注意: 一、java main方式运行mblog-web下的BootApplication.java时抛出异常的解决方案 Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean. SpringBoot开发非常美观的java博客系统(包含后台管理功能) 注释掉后下面图片的这段后,记得maven要重新reimport SpringBoot开发非常美观的java博客系统(包含后台管理功能) SpringBoot开发非常美观的java博客系统(包含后台管理功能) 否则maven依赖不生效还是会抛出以上的异常 二、第三方登录点击后无响应,那是因为第三方开放平台回调的url失效导致,需要你去对应的第三方开放平台注册app后获取对应的oauth帐号 SpringBoot开发非常美观的java博客系统(包含后台管理功能) 三、idea以maven项目导入该项目后,发现没有maven的依赖包时,需要对每个maven module进行clear和install,并且注意maven的依赖顺序 SpringBoot开发非常美观的java博客系统(包含后台管理功能) SpringBoot开发非常美观的java博客系统(包含后台管理功能) 、访问地址是http://localhost:8080 登录时,帐号,密码只要自己找个密码,然后md5下在更新到db中即可登录成功。 比如:zuidaima 111111,md5后密码是 3931MUEQD1939MQMLM4AISPVNE,md5的javaSpringBoot开发非常美观的java博客系统(包含后台管理功能) SpringBoot开发非常美观的java博客系统(包含后台管理功能)
Spring Boot 是一个基于 Spring 框架的快速开发框架,它的主要特点是约定大于配置、自动配置和快速开发。如果你想深入了解 Spring Boot 的实现原理,可以从以下几个方面入手: 1. Spring Boot 的启动过程:在启动 Spring Boot 应用时,Spring Boot 会自动扫描项目中的注解,加载配置文件,并进行自动配置。你可以通过分析 Spring Boot 的启动过程,了解它是如何实现快速开发的。 2. Spring Boot 的自动配置机制:Spring Boot 提供了很多自动配置类,这些类可以根据项目中的依赖自动配置相应的组件,比如数据库连接池、模板引擎等。你可以通过查看这些自动配置类的源码,了解 Spring Boot 的自动配置机制是如何实现的。 3. Spring Boot 的注解:Spring Boot 提供了很多注解,比如 @SpringBootApplication、@EnableAutoConfiguration 等。这些注解可以简化开发过程,并且提高代码的可读性。你可以通过查看这些注解的源码,了解它们是如何实现的。 4. Spring Boot 的特性:Spring Boot 还提供了很多特性,比如 Actuator、Devtools 等。这些特性可以帮助开发者更方便地进行应用的监控和调试。你可以通过查看这些特性的源码,了解它们是如何实现的。 总之,要深入了解 Spring Boot 的实现原理,需要对 Spring 框架有一定的了解,并且需要认真阅读 Spring Boot源码。同时,还需要进行实践操作,通过编写代码来加深对 Spring Boot 的理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhisheng_blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值